package plp.orientadaObjetos2.comando;

import plp.expressions2.memory.VariavelJaDeclaradaException;
import plp.expressions2.memory.VariavelNaoDeclaradaException;
import plp.orientadaObjetos1.excecao.declaracao.ClasseJaDeclaradaException;
import plp.orientadaObjetos1.excecao.declaracao.ClasseNaoDeclaradaException;
import plp.orientadaObjetos1.excecao.declaracao.ObjetoJaDeclaradoException;
import plp.orientadaObjetos1.excecao.declaracao.ObjetoNaoDeclaradoException;
import plp.orientadaObjetos1.excecao.declaracao.ProcedimentoJaDeclaradoException;
import plp.orientadaObjetos1.excecao.declaracao.ProcedimentoNaoDeclaradoException;
import plp.orientadaObjetos1.excecao.execucao.EntradaInvalidaException;

public interface ComandoReflectionHandler {
	
	public void setProximo(ComandoReflectionHandler handler);
	public void comandoHandler(ComandoBean comandoBean) throws ClasseNaoDeclaradaException,
		VariavelNaoDeclaradaException, VariavelJaDeclaradaException, ObjetoNaoDeclaradoException, ClasseJaDeclaradaException, 
		ObjetoJaDeclaradoException, ProcedimentoNaoDeclaradoException, ProcedimentoJaDeclaradoException, EntradaInvalidaException;

}
